diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
--- a/modules/fdlibm/src/math_private.h
+++ b/modules/fdlibm/src/math_private.h
@@ -33,16 +33,23 @@
  * to dig two 32 bit words out of the 64 bit IEEE floating point
  * value.  That is non-ANSI, and, moreover, the gcc instruction
  * scheduler gets it wrong.  We instead use the following macros.
  * Unlike the original code, we determine the endianness at compile
  * time, not at run time; I don't see much benefit to selecting
  * endianness at run time.
  */
 
+#ifndef u_int32_t
+#define u_int32_t uint32_t
+#endif
+#ifndef u_int64_t
+#define u_int64_t uint64_t
+#endif
+
 /* A union which permits us to convert between a long double and
    four 32 bit ints.  */
 
 #if MOZ_BIG_ENDIAN
 
 typedef union
 {
   long double value;
